package com.bdqn;

import com.bdqn.reflect.dao.impl.PersonRedisDao;
import com.bdqn.reflect.dao.impl.PersonSQLServerDao;
import com.bdqn.reflect.service.PersonService;
import com.bdqn.reflect.service.impl.PersonServiceImpl;

/**
 * Hello world!
 */
public class App {

    /**
     * Main方法（终端）
     *
     * @param args
     */
    public static void main(String[] args) {
        // 依赖倒置
        // 方式一：直接在构造器中传入DAO层实现类的对象
        // PersonService personService = new PersonServiceImpl(new PersonOracleDao());
        PersonService personService = new PersonServiceImpl();
        // 方式二：在set方法中传入DAO层实现类的对象
        personService.setPersonDao(new PersonRedisDao());

        // 调用业务层的方法
        // personService.list();

        // 方式三：在业务层方法中传入DAO层实现类的对象
        personService.list(new PersonSQLServerDao());
    }

}
